package com.wicket.okrframework.integration.dto;


import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


@Data
public class BaseMetadataTypeDto extends BaseDto implements Serializable {

    /**
     * 类型ID:
     */
    @ApiModelProperty("类型ID")
    private String typeId;

    /**
     * 类型的编码:
     */
    @ApiModelProperty("类型的编码")
    private String typeCode;

    /**
     * 类型名称:
     */
    @ApiModelProperty("类型名称")
    private String typeName;

    /**
     * 操作人就职记录ID:
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 操作时间:
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 主体生命周期:
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 创建人就职记录ID:
     */
    @ApiModelProperty("创建人就职记录ID")
    private String createInductionId;

    /**
     * 发布人就职记录ID:
     */
    @ApiModelProperty("发布人就职记录ID")
    private String releaseInductionId;

    /**
     * 存档人就职记录ID:
     */
    @ApiModelProperty("存档人就职记录ID")
    private String archiveInductionId;

    /**
     * 创建时间:
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 发布时间:
     */
    @ApiModelProperty("发布时间")
    private Date releaseTime;

    /**
     * 存档时间:
     */
    @ApiModelProperty("存档时间")
    private Date archiveTime;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BaseMetadataTypeDto that = (BaseMetadataTypeDto) o;
      return  typeId == that.typeId&&typeCode == that.typeCode&&typeName == that.typeName&&operationInductionId == that.operationInductionId&&operateTime == that.operateTime&&subjectLifeCycle == that.subjectLifeCycle&&createInductionId == that.createInductionId&&releaseInductionId == that.releaseInductionId&&archiveInductionId == that.archiveInductionId&&createTime == that.createTime&&releaseTime == that.releaseTime&&archiveTime == that.archiveTime;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), typeId,typeCode,typeName,operationInductionId,operateTime,subjectLifeCycle,createInductionId,releaseInductionId,archiveInductionId,createTime,releaseTime,archiveTime);
    }
}
